﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using YasharEl.Infrastructure.EntityModel;

namespace YasharEl.Infrastructure.Core.Prototype
{
    [Serializable]
    public abstract class ObjectType : Enumeration
    {
        #region ReadOnly Fields

        private readonly string _objectName;
        private readonly string _objectTableName;
        private readonly Type _clrObjectType;

        #endregion

        #region Constructors

        protected ObjectType(int value, string shortName, string longName, string objectName, string objectTableName, Type clrObjectType)
            : base(value, shortName, longName)
        {
            _objectName = objectName;
            _objectTableName = objectTableName;
            _clrObjectType = clrObjectType;
        }

        protected ObjectType()
        {
        }

        #endregion

        #region ReadOnly Properties

        public string ObjectName
        {
            get { return _objectName; }
        }

        public string ObjectTableName
        {
            get { return _objectTableName; }
        }

        public Type ClrObjectType
        {
            get { return _clrObjectType; }
        }

        #endregion
    }
}
